/*一. 文件系统 (file system)
文件系统捡来来说就是通过node来操作系统中的文件
 使用文件系统 需要先引入fs模块 fs是核心模块直接引入 不需要下载
 fs文件 fs模块中所有的操作都有两种形式可供选择同步和异步
 同步文件系统会阻塞程序的执行即除非操作完毕,否则不会向下执行代码
 异步文件系统不会阻塞程序的执行,而是在操作完成时,通过回调函数将结果返回

二.同步文件的写入:
    手动操作步骤:
        1.打开文件
            打开nodejs中文网 找到fs文件系统  ctrl+f搜索 open  找到 同步文件 fs.openSync(path[, flags, mode])
            path 路径 要打开文件的路径
            flags 打开文件要操作的类型
                    r 只读
                    w 可写
            mode 可选的 操作权限 一般不用
           返回值:
                该方法会返回一个文件的描述符做为结果 我们可以通过描述符进行各种操作
        2.向文件中写入内容
       中文网找到  fs.writeSync(fd, string[, position[, encoding]])
            fd:文件的描述符 需要传递要希尔弗文件的描述符
            string:要写入的内容
            position :写入的起始位置
            encoding写入的编码 默认utf-8
        3.保存文件并关闭文件
       fs.closeSync(fd) fd要关闭的哪个文件
三.异步文件写入
    引入fs模块
    1.打开文件
        在nodejs中文往里找 fs.open(path[, flags[, mode]], callback)
         path 路径 要打开文件的路径
            flags 打开文件要操作的类型
                    r 只读
                    w 可写
            mode 可选的 操作权限 一般不用
            callback:
            异步调用的方法都是通过回调函数的参数返回的
                回调函数有2个参数
                    err 错误对象 如果没有错误 在返回null
                    fd 文件的描述符

          返回值:没有返回值
    2.写入文件
     fs.write(fd, string[, position[, encoding]], callback)
    3.保存并关闭文件
     fs.close(fd, callback)


* */
var fs=require("fs");
// console.log(fs);
//var fd=fs.openSync("hello.txt","w");
// console.log(fd);//返回一个数字 说明该文件已经被打开
//向文件中写入内容
//fs.writeSync(fd,"今天天气真不错");
//fs.closeSync(fd);
fs.open("hello.txt","w",function (err,fd) {
    // console.log("123");
    // console.log(arguments);//arguments 参数  返回值[Arguments] { '0': null, '1': 3 }
    if (!err){
        // console.log(fd);//没有错误时 返回3
        //如果没有出错 则写入
        fs.write(fd,"这是异步写入的内容",function (err) {
           if (!err){
               console.log("写入成功");
           }
           //关闭文件
            fs.close(fd,function (err) {
                if (!err){
                    console.log("文件已关闭");
                }
            })
        })
    }else{
        console.log(err);
    }
    console.log("程序向下执行");
});